/**
 * Created by Administrator on 2016/12/23.
 */

var http = require('http');
//获取url模块
var url = require('url');
var fs = require('fs');
var server = http.createServer(function (req, res) {
    //req.url保存的接口信息
    //console.log(req.url);

    //获取url模块对象, 参数一为request的url, 参数二表示是否把接口的参数转化为对象类型 例如 :  query: { username: '123', password: '1234' },
    var urlObj = url.parse(req.url, true);
    //console.log(urlObj);
    //进行用户登陆密码验证
    var query = urlObj.query;
    var pathname = urlObj.pathname;
    //判断请求是否为get请求
    if (req.method == 'GET') {
        //判断请求的接口名是否是login接口
        if (pathname == '/login') {
            if (query.username == '123' && query.password == '1234') {
                res.write('{"code":1,"msg":"success"}');
            } else {
                res.write('{"code":0,"msg":"username or password are wrong"}');
            }
        }
    }
    //post是按照流的形式发送的, req就是读取流, 可以通过req给读取流绑定data事件, 从中读取数据
    var data = '';
    var qs = require('querystring');
    if (req.method == 'POST') {
        console.log('get a post request.');
        req.on('data', function (chunk) {
            //用post时使用回传的参数是一个Buffer : <Buffer 75 73 65 72 6e 61 6d 65 3d 31 32 33 26 70 61 73 73 77 6f 72 64 3d 34 31 32>
            //这个Buffer就是封装在url头部中的参数, 使用toString()方法就可以打印出可读的参数 : username=123&password=1234 但这只是一个字符串, 而不是对象
            console.log(chunk);
            console.log(chunk.toString());
            data += chunk;
        });
        //当流中的数据量非常大时会多次回调上面的on('data'), 此时需要判断什么时候已经全部读取完毕,
        //当读取完毕时会触发on('end')事件
        //解析chunk拼接后的data时需要使用querystring第三方包
        //导入querystring包的方式为 : 在命令行Terminal中输入npm install querystring , WebStorm会自动下载并导入
        req.on('end', function () {
            console.log(data);
            var rs = fs.createReadStream('./data.json');
            rs.pipe(data);
            //用第三方querystring转换成对象类型
            // var dataObj = qs.parse(data);
            // console.log(dataObj);
            // if (dataObj.username == '123' && dataObj.password == '1234') {
            //     res.write('{"code":1,"msg":"success"}');
            // } else {
            //     res.write('{"code":0,"msg":"username or password are wrong"}');
            // }
            //res.end();
        });
    }
    res.end();
});

server.listen(8888, function () {
    console.log('启动服务器成功')
});